//
// Created by YE on 2024/1/5.
//

#ifndef YCH_INTERPRETER_INTERPRETER_H
#define YCH_INTERPRETER_INTERPRETER_H

#include "../common/ych_error.h"
#include "../compiler/parser.h"
#include "../vm/executor.h"

typedef YCH_STATE Interpreter_State;

class Interpreter {
public:
    Interpreter();

    ~Interpreter();

    Interpreter_State compiler(const char *file_path);

    Interpreter_State reader_init(const char *file_path);

    Interpreter_State lexer_init();

    Interpreter_State parser_init();

    Reader *reader;
    Lexer *lexer;
    Parser *parser;
    Executor *executor;
};

#endif //YCH_INTERPRETER_INTERPRETER_H
